The illustrative embodiments described in the present application are useful in systems including those for preventing data collisions in multiple access data storage systems and more particularly are useful in systems for preventing data collisions using structured Cloud table storage systems that do not use uniform columns. In certain embodiments, Cloud computing instances are utilized to ensure single session compliance to prevent data collisions in associated Cloud storage instances.
A typical relational database management system uses tables having rows and uniform columns to store data. Typically, each row contains a record and each column is defined to contain the same field type (a type of data) for each or the respective rows in the table. Each row of a table must include a “primary key” that is unique in the table to the particular row. For example, if a customer number is used as the primary key, each customer is allowed only one row or record in the table.
SQL and other relational databases typically provide data-processing capabilities on top of a storage system. Generally, RDBMS users desire sophisticated data processing capability in the database environment that is not typically available with databases that provide only raw storage and retrieval of data. The RDBMS can process data intensive queries without burdening the main application. Unfortunately, in a multiple-client access relational database, the whole table, or at least a page of a table, must be locked each time a row in the table is updated. Moreover, the RDBMS database will be subject to practical limitation on concurrent user access. In a large scale RDBMS system with thousands of concurrent users, database multiple user access contention and database lock contention are significant bottlenecks and performance concerns.
Two methods that have been used to attempt to address the database lock contention bottleneck issue are the use of Table Partitioning and the use of Federated Tables. However, such approaches add programming complexity and may not scale well. Moreover, traditional RDBMS partition keys use a range, list or hash based approach to vertical or horizontal partitioning of tables at a relatively course scale. Traditional RDBMS load balancing systems must still deal with access contentions. Accordingly, there is a need for a data storage type, system and method that accommodates large scale concurrent access data storage without suffering the database lock contention bottleneck described above.